﻿using System;
using System.Security.Principal;
using ElectronicCommerce.Framework.Utility;

namespace ElectronicCommerce.Framework
{
    /// <summary>
    /// Frame Work Context
    /// </summary>
    public abstract class FrameworkContext
    {
        public const string SCHEMA_NAMESPACE = "http://www.ElectronicCommerce.com";
        public const string SCHEMA_NAMESPACE_DATA = "http://www.ElectronicCommerce.com/data";
        public const string SCHEMA_NAMESPACE_DEPLOY = "http://www.ElectronicCommerce.com/deploy";

        #region User

        /// <summary>
        /// Get or set the current <see cref="IPrincipal" />
        /// object representing the user's identity.
        /// </summary>
        public abstract IPrincipal User { get; set; }

        #endregion

        /// <summary>
        /// 
        /// </summary>
        public DateTime DateTimeMinValue
        {
            get { return DateTimeHelper.MinValue; }
        }

        /// <summary>
        /// 
        /// </summary>
        public DateTime DateTimeMaxValue
        {
            get { return DateTimeHelper.MaxValue; }
        }
    }
}
